import axios from "axios";
import {baseURL} from "@/configUse";

//创建一个新的axios对象http://localhost:8080/
const request = axios.create({
    //连接的服务器
    baseURL:baseURL,
    timeout:30000000000,//接口的等待最大时长
})

//requext 拦截器
//可以自请求发送前对请求错一些处理
//比如统一加token，对请求参数统一加密
request.interceptors.request.use(config =>{
    // 从localStorage或其他存储中获取token
    const token = localStorage.getItem('u_token');
    // 如果token存在，则将其添加到请求头中
    if (token){
        config.headers['u_token'] =`${token}`; // 通常使用'Authorization'头部，并使用'Bearer '前缀
    }
    // 设置Content-Type
    config.headers["Content-Type"] = 'multipart/form-data'
    return config
},error => {
    console.error('request error:' + error)
    return Promise.reject(error)
})

//response 拦截器
//可以在接口响应后统一处理结果
request.interceptors.response.use(response =>{
    let res = response.data

    //兼容服务端返回的字符串数据
    if (typeof  res === 'string'){
        res = res? JSON.parse(res) : res
    }
    return res
},
    error => {
        console.error('response error:' + error)  //for debug
        return Promise.reject(error)
    })

export default request